package com.jandar.logging;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Logger基类。
 * 
 * @author pqj
 * @version 2009-7-9
 */
public abstract class BaseLogger implements Logger {
	/** 默认消息时间格式化 */
	private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	/** Logger名字 */
	protected String name;

	public BaseLogger(String name) {
		this.name = name;
	}

	/**
	 * 格式化消息格式。
	 * 
	 * @param prefix 消息前缀
	 * @param str 正文
	 * @return 格式化后消息
	 */
	public String format(String prefix, String str) {
		return getCurDate() + " [" + name + "]-[" + prefix + "] " + str;
	}

	/**
	 * 格式化消息格式。
	 * 
	 * @param prefix 消息前缀
	 * @param ex 异常
	 * @return 格式化后消息
	 */
	public String format(String prefix, Throwable ex) {
		return getCurDate() + " [" + name + "]-[" + prefix + "] " + ex.toString();
	}

	public String getCurDate() {
		Date date = new Date();
		return dateFormat.format(date);
	}

	public String getCurDate(String pattern) {
		Date date = new Date();
		return new SimpleDateFormat(pattern).format(date);
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}
